package com.ssy.lingxi.contract.model.vo.manage.request;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * 合同管理新增更新参数VO
 * @author 伍将
 * @date 2021/2/24
 * @version 2.0.0
 */
public class ContractUpdateVO implements Serializable {
    private static final long serialVersionUID = 4482598110323249734L;

    /**
     * 基础信息
     */
    @Valid
    @NotNull(message = "基础信息不能为空")
    private ContractBasicsUpdateVO basicsVO;

    /**
     * 采购物料
     */
    @Valid
    @Size(min = 1, message = "采购物料不能为空")
    private List<PurchaseMaterielUpdateVO> purchaseMaterielList;

    /**
     * 付款计划
     */
    @Valid
    @Size(min = 1, message = "付款计划不能为空")
    private List<ContractPayPlanUpdateVO> payPlanList;

    /**
     * 合同文本
     */
    @Valid
    @NotNull(message = "合同文本不能为空")
    private ContractTextUpdateVO contractText;

    /**
     * 操作类型（1：新增，2：修改，3：变更合同）
     *
     */
    @NotNull(message = "操作类型不能为空")
    private Integer operateType;

    public ContractBasicsUpdateVO getBasicsVO() {
        return basicsVO;
    }

    public void setBasicsVO(ContractBasicsUpdateVO basicsVO) {
        this.basicsVO = basicsVO;
    }

    public List<PurchaseMaterielUpdateVO> getPurchaseMaterielList() {
        return purchaseMaterielList;
    }

    public void setPurchaseMaterielList(List<PurchaseMaterielUpdateVO> purchaseMaterielList) {
        this.purchaseMaterielList = purchaseMaterielList;
    }

    public List<ContractPayPlanUpdateVO> getPayPlanList() {
        return payPlanList;
    }

    public void setPayPlanList(List<ContractPayPlanUpdateVO> payPlanList) {
        this.payPlanList = payPlanList;
    }

    public ContractTextUpdateVO getContractText() {
        return contractText;
    }

    public void setContractText(ContractTextUpdateVO contractText) {
        this.contractText = contractText;
    }

    public Integer getOperateType() {
        return operateType;
    }

    public void setOperateType(Integer operateType) {
        this.operateType = operateType;
    }
}
